package com.ljx.itbbs.server.user.service;

import com.ljx.itbbs.common.domain.entity.UserEntity;
import com.ljx.itbbs.common.domain.vo.resp.PageResp;
import com.ljx.itbbs.server.user.domain.vo.req.PlaterSettingReq;
import com.ljx.itbbs.server.user.domain.vo.req.UserPageReq;
import com.ljx.itbbs.server.user.domain.vo.req.UserUpdateReq;
import com.ljx.itbbs.server.user.domain.vo.resp.admin.UserInfoAdminResp;

import java.util.List;
import java.util.Map;

public interface UserService {

    UserEntity selectByUsername(String username);

    boolean checkUsernameUnique(String username);

    void registerUser(String username, String password);


    Map<Long, UserEntity> getUserInfoByIds(List<Long> ids);

    UserEntity getUserInfoById(Long uid);

    void updateUserInfo(Long uid, UserUpdateReq req);

    void increaseUserExp(Long userId, Long exp);

    void increaseUserIntegral(Long userId, Integer integral);

    void delUserRedisCache(Long uid);

    PageResp<UserInfoAdminResp> adminUserList(UserPageReq req);

    void adminUpdateUserStatus(Long userId, Integer status);

    void adminSettingPlater(PlaterSettingReq req);

    void adminCancelPlater(PlaterSettingReq req);
}
